package com.xjy.system.domain.bo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import javax.validation.constraints.*;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 收入记账信息编辑对象 sys_colpaydec
 *
 * @author xjy
 * @date 2022-02-14
 */
@Data
@ApiModel("收入记账信息编辑对象")
public class SysColpaydecEditBo {


	@ApiModelProperty("收款记录ID")
	private Long id;

	@ApiModelProperty("项目ID")
	@NotNull(message = "项目ID不能为空")
	private Long projId;

	@ApiModelProperty("合同ID")
	private Long contractId;

	@ApiModelProperty("合同结算项目ID")
	private Long resultProjId;

	@ApiModelProperty("科目ID")
	private Long budgetId;

	@ApiModelProperty("收款单据单号")
	@NotBlank(message = "收款单据单号不能为空")
	private String colpayNo;

	@ApiModelProperty("项目名称")
	private String projName;

	@ApiModelProperty("合同名称")
	private String contractName;

	@ApiModelProperty("结算项目名称")
	@NotBlank(message = "结算项目名称不能为空")
	private String resultProjName;

	@ApiModelProperty("科目名称")
	private String budgetName;

	@ApiModelProperty("收款时间")
	@NotNull(message = "收款时间不能为空")
	@JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
	private Date colpayTime;

	@ApiModelProperty("收款金额")
	@NotNull(message = "收款金额不能为空")
	private BigDecimal colpayAmt;

	@ApiModelProperty("收款说明")
	private String colpayDec;


	@ApiModelProperty("收款来源")
	private Long colpaySource;

	@ApiModelProperty("收款来源")
	private String colpaySourceName;

	@ApiModelProperty("收款类型0：合同收款，1：其它收款")
	private Integer colpayType;

	@ApiModelProperty("经办人")
	@NotBlank(message = "经办人不能为空")
	private String handler;

	@ApiModelProperty("经办人id")
	@NotNull(message = "经办人id不能为空")
	private Long handlerId;

	@ApiModelProperty("收款方式0：现金，1：银行（默认：银行）")
	@NotNull(message = "收款方式0：现金，1：银行（默认：银行）不能为空")
	private Integer colpayWay;

	@ApiModelProperty("收款账户id")
	@NotNull(message = "收款账户id不能为空")
	private Long colpayAccountId;

	@ApiModelProperty("收款账户名称")
	@NotBlank(message = "收款账户名称不能为空")
	private String colpayAccountName;

	@ApiModelProperty("收款账户开户行")
	@NotBlank(message = "收款账户开户行不能为空")
	private String colpayAccountBank;

	@ApiModelProperty("收款账户号码")
	@NotBlank(message = "收款账户号码不能为空")
	private String colpayAccountNo;

	@ApiModelProperty("预留字段1")
	private String reserveOne;

	@ApiModelProperty("预留字段2")
	private String reserveTwo;

	@ApiModelProperty("预留字段3")
	private String reserveThree;

	@ApiModelProperty("修改时间")
	private Date updateTime;

	@ApiModelProperty("审核状态 0：未审核（默认）；1：审核")
	@NotNull(message = "审核状态 0：未审核（默认）；1：审核不能为空")
	private Boolean auditStatus;

}
